home *** CD-ROM | disk | FTP | other *** search
/ ADA Programming Guide / ADA Programming Guide.iso / ada_gnu / include / float.h < prev    next >
C/C++ Source or Header  |  1996-01-30  |  4KB  |  106 lines

  1. #ifndef _FLOAT_H___
  2. #define _FLOAT_H___
  3. /* Produced by enquire version 4.3, CWI, Amsterdam */
  4.  
  5.    /* Radix of exponent representation */
  6. #undef FLT_RADIX
  7. #define FLT_RADIX 2
  8.    /* Number of base-FLT_RADIX digits in the significand of a float */
  9. #undef FLT_MANT_DIG
  10. #define FLT_MANT_DIG 24
  11.    /* Number of decimal digits of precision in a float */
  12. #undef FLT_DIG
  13. #define FLT_DIG 6
  14.    /* Addition rounds to 0: zero, 1: nearest, 2: +inf, 3: -inf, -1: unknown */
  15. #undef FLT_ROUNDS
  16. #define FLT_ROUNDS 1
  17.    /* Difference between 1.0 and the minimum float greater than 1.0 */
  18. #undef FLT_EPSILON
  19. #define FLT_EPSILON 1.19209290e-07F
  20.    /* Minimum int x such that FLT_RADIX**(x-1) is a normalised float */
  21. #undef FLT_MIN_EXP
  22. #define FLT_MIN_EXP (-125)
  23.    /* Minimum normalised float */
  24. #undef FLT_MIN
  25. #define FLT_MIN 1.17549435e-38F
  26.    /* Minimum int x such that 10**x is a normalised float */
  27. #undef FLT_MIN_10_EXP
  28. #define FLT_MIN_10_EXP (-37)
  29.    /* Maximum int x such that FLT_RADIX**(x-1) is a representable float */
  30. #undef FLT_MAX_EXP
  31. #define FLT_MAX_EXP 128
  32.    /* Maximum float */
  33. #undef FLT_MAX
  34. #define FLT_MAX 3.40282347e+38F
  35.    /* Maximum int x such that 10**x is a representable float */
  36. #undef FLT_MAX_10_EXP
  37. #define FLT_MAX_10_EXP 38
  38.  
  39.    /* Number of base-FLT_RADIX digits in the significand of a double */
  40. #undef DBL_MANT_DIG
  41. #define DBL_MANT_DIG 53
  42.    /* Number of decimal digits of precision in a double */
  43. #undef DBL_DIG
  44. #define DBL_DIG 15
  45.    /* Difference between 1.0 and the minimum double greater than 1.0 */
  46. #undef DBL_EPSILON
  47. #define DBL_EPSILON 2.2204460492503131e-16
  48.    /* Minimum int x such that FLT_RADIX**(x-1) is a normalised double */
  49. #undef DBL_MIN_EXP
  50. #define DBL_MIN_EXP (-1021)
  51.    /* Minimum normalised double */
  52. #undef DBL_MIN
  53. #define DBL_MIN 2.2250738585072010e-308
  54.  
  55.    /* Minimum int x such that 10**x is a normalised double */
  56. #undef DBL_MIN_10_EXP
  57. #define DBL_MIN_10_EXP (-307)
  58.    /* Maximum int x such that FLT_RADIX**(x-1) is a representable double */
  59. #undef DBL_MAX_EXP
  60. #define DBL_MAX_EXP 1024
  61.    /* Maximum double */
  62. #undef DBL_MAX
  63. #define DBL_MAX 1.7976931348623167e+308
  64.  
  65.    /* Maximum int x such that 10**x is a representable double */
  66. #undef DBL_MAX_10_EXP
  67. #define DBL_MAX_10_EXP 308
  68.  
  69.    /* Number of base-FLT_RADIX digits in the significand of a long double */
  70. #undef LDBL_MANT_DIG
  71. #define LDBL_MANT_DIG 64
  72.    /* Number of decimal digits of precision in a long double */
  73. #undef LDBL_DIG
  74. #define LDBL_DIG 18
  75.    /* Difference between 1.0 and the minimum long double greater than 1.0 */
  76. #undef LDBL_EPSILON
  77. #ifndef __LDBL_UNION__
  78. #define __LDBL_UNION__
  79. union __convert_long_double {
  80.   unsigned __convert_long_double_i[4];
  81.   long double __convert_long_double_d;
  82. };
  83. #endif
  84. #define LDBL_EPSILON (__extension__ ((union __convert_long_double) {0x0, 0x80000000, 0x3fc0, 0x0}).__convert_long_double_d)
  85.    /* Minimum int x such that FLT_RADIX**(x-1) is a normalised long double */
  86. #undef LDBL_MIN_EXP
  87. #define LDBL_MIN_EXP (-16381)
  88.    /* Minimum normalised long double */
  89. #undef LDBL_MIN
  90. #define LDBL_MIN (__extension__ ((union __convert_long_double) {0x0, 0x80000000, 0x1, 0x0}).__convert_long_double_d)
  91.    /* Minimum int x such that 10**x is a normalised long double */
  92. #undef LDBL_MIN_10_EXP
  93. #define LDBL_MIN_10_EXP (-4931)
  94.    /* Maximum int x such that FLT_RADIX**(x-1) is a representable long double */
  95. #undef LDBL_MAX_EXP
  96. #define LDBL_MAX_EXP 16384
  97.    /* Maximum long double */
  98. #undef LDBL_MAX
  99. #define LDBL_MAX (__extension__ ((union __convert_long_double) {0xffffffff, 0xffffffff, 0x7ffe, 0x0}).__convert_long_double_d)
  100.    /* Maximum int x such that 10**x is a representable long double */
  101. #undef LDBL_MAX_10_EXP
  102. #define LDBL_MAX_10_EXP 4932
  103.  
  104. #endif /*  _FLOAT_H___ */
  105.  
  106.